from flask import Flask

app = Flask(__name__)

"""
before_request = ['xxx1','xxx2']
然后去遍历
"""
# 第一个装饰器before_request相当于django中间件中的process_request,在视图函数执行之前先执行这里
@app.before_request
def xxx1():
    print("执行之前1")


@app.before_request
def xxx2():
    print("执行之前2")

"""
after_request = ['ooo1','ooo2']
reversed(after_request) = ['ooo2','ooo1']
new_after_request = ['ooo2','ooo1']
"""
# 第二个装饰器after_request相当于django中间件中的process_response,在视图函数执行之前先执行这里
@app.after_request
def ooo1(response):
    print("执行之后1")
    return response


@app.after_request
def ooo2(response):
    print("执行之后2")
    return response

# 由于after_request列表进行了reversed 所以执行的结果是  前1-->前2-->视图函数-->后2-->后1
@app.route('/')
def index():
    print("视图函数执行了")
    return "hello world"


if __name__ == '__main__':
    app.run(debug=True)
"""
执行之前1
执行之前2
视图函数执行了
执行之后2
执行之后1
"""